/**
 * 常量配置
 * 统一管理项目中的常量
 */

// 验证码相关
export const CODE = {
  COUNTDOWN: 60, // 验证码倒计时(秒)
};

// 默认值
export const DEFAULT = {
  AVATAR: '/static/logo.png', // 默认头像
  COVER: '/static/food01.png', // 默认封面
};

// 分页
export const PAGE = {
  SIZE: 10, // 默认分页大小
  START: 1, // 起始页码
};

// 订单状态
export const ORDER_STATUS = {
  UNPAID: 0,        // 待支付
  PAID: 1,          // 已支付
  PREPARING: 2,     // 备餐中
  DELIVERING: 3,    // 配送中
  COMPLETED: 4,     // 已完成
  CANCELLED: 5,     // 已取消
  REFUNDING: 6,     // 退款中
  REFUNDED: 7,      // 已退款
};

// 订单状态文本
export const ORDER_STATUS_TEXT: Record<number, string> = {
  [ORDER_STATUS.UNPAID]: '待支付',
  [ORDER_STATUS.PAID]: '已支付',
  [ORDER_STATUS.PREPARING]: '备餐中',
  [ORDER_STATUS.DELIVERING]: '配送中',
  [ORDER_STATUS.COMPLETED]: '已完成',
  [ORDER_STATUS.CANCELLED]: '已取消',
  [ORDER_STATUS.REFUNDING]: '退款中',
  [ORDER_STATUS.REFUNDED]: '已退款',
};

// 支付方式
export const PAYMENT_METHOD = {
  WECHAT: 1,     // 微信支付
  ALIPAY: 2,     // 支付宝
  BALANCE: 3,    // 余额支付
};

// 支付方式文本
export const PAYMENT_METHOD_TEXT: Record<number, string> = {
  [PAYMENT_METHOD.WECHAT]: '微信支付',
  [PAYMENT_METHOD.ALIPAY]: '支付宝',
  [PAYMENT_METHOD.BALANCE]: '余额支付',
};

// 商家类型
export const MERCHANT_TYPE = {
  FAST_FOOD: 1,      // 快餐
  CHINESE: 2,        // 中餐
  WESTERN: 3,        // 西餐
  JAPANESE: 4,       // 日韩料理
  DESSERT: 5,        // 甜品饮品
  SNACK: 6,          // 小吃夜宵
};

// 商家类型文本
export const MERCHANT_TYPE_TEXT: Record<number, string> = {
  [MERCHANT_TYPE.FAST_FOOD]: '快餐',
  [MERCHANT_TYPE.CHINESE]: '中餐',
  [MERCHANT_TYPE.WESTERN]: '西餐',
  [MERCHANT_TYPE.JAPANESE]: '日韩料理',
  [MERCHANT_TYPE.DESSERT]: '甜品饮品',
  [MERCHANT_TYPE.SNACK]: '小吃夜宵',
};

// 正则表达式
export const REGEX = {
  PHONE: /^1[3-9]\d{9}$/, // 手机号
  PASSWORD: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,20}$/, // 密码(6-20位,包含大小写字母和数字)
  CODE: /^\d{6}$/, // 验证码(6位数字)
};

// 地址标签
export const ADDRESS_TAG = {
  HOME: '家',
  COMPANY: '公司',
  SCHOOL: '学校',
  OTHER: '其他',
};

// 地址标签列表
export const ADDRESS_TAG_LIST = [
  ADDRESS_TAG.HOME,
  ADDRESS_TAG.COMPANY,
  ADDRESS_TAG.SCHOOL,
  ADDRESS_TAG.OTHER,
];